package com.learn.dto.system.base;

import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 操作员相关dto
 *
 * @author yaoqihui
 * @version 2022/10/25
 * @see [相关类/方法]
 */
@Data
@JsonInclude (JsonInclude.Include.NON_NULL)
public class Operator implements Serializable
{

	private static final long serialVersionUID = 2381256248729649981L;

	/**
	 * 操作员id（Y）
	 */
	private String id;
	/**
	 * 登录账户（Y）
	 */
	private String loginAccount;
	/**
	 * 登录账户类型（Y） EMAIL：邮箱 MOBILE：手机号码 SELF_DEFINE：自定义
	 */
	private String loginType;
	/**
	 * 账户生效日期 默认立即生效
	 */
	private LocalDateTime startTime;

	/**
	 * 账户失效日期
	 */
	private LocalDateTime expireTime;
	/**
	 * 登录密码（Y）
	 */
	private String password;
	/**
	 * 是否是临时密码 true：是 false：否 默认为false  用户使用临时密码登录成功后必须修改密码
	 */
	private String pwdTempFlag;
	/**
	 * 密码失效期
	 */
	private LocalDateTime pwdExpireTime;
	/**
	 * 首次登录成功的时间
	 */
	private LocalDateTime loginSuccessFirstTime;
	/**
	 * 最后一次登录成功时间
	 */
	private LocalDateTime loginSuccessLastTime;
	/**
	 * 最后一次登录失败时间
	 */
	private LocalDateTime loginFailLastTime;
	/**
	 * 连续登录失败次数
	 */
	private Integer loginFailTimes;
	/**
	 * 连续登录失败的锁定状态 YES：已锁定  NO：未锁定
	 */
	private String loginLockStatus;
	/**
	 * 连续登录失败X次后锁定的到期时间
	 */
	private LocalDateTime loginLockTime;
	/**
	 * 是否已经做实名认证  true：是 false：否
	 */
	private Boolean identityVerifaction;
	/**
	 * 真实姓名
	 */
	private String realName;
	/**
	 * 证件类型 IDCARD：身份证
	 */
	private String identityType;
	/**
	 * 证件ID
	 */
	private String identityId;
	/**
	 * 性别 MALE：男 FEMALE：女
	 */
	private String gender;
	/**
	 * 生日 YYYY-MM-DD
	 */
	private String dob;
	/**
	 * 地区
	 */
	private String area;
	/**
	 * 手机号码
	 */
	private String contactPhone;
	/**
	 * 邮箱
	 */
	private String contactEmail;
	/**
	 * 昵称
	 */
	private String profileNickName;
	/**
	 * 头像图片链接
	 */
	private String profileAvatar;
	/**
	 * 个性签名
	 */
	private String profileSignature;
	/**
	 * 创建日期
	 */
	private LocalDateTime createTime;
	/**
	 * 状态  （Y） REVIEWING：待审核 REJECTED：审核不通过 PENDING：待激活 ACTIVE：正常/激活状态,
	 * SYSLOCK：系统锁定 PAUSE：暂停 INACTIVE：非激活/禁用状态
	 */
	private String status;
	/**
	 * 状态时间
	 */
	private LocalDateTime statusTime;
	/**
	 * 状态时间
	 */
	private LocalDateTime lastModifyTime;
	/**
	 * 备注
	 */
	private String remark;
	/**
	 * 是否有待审核的角色变更 true：是 false：否 （默认）
	 */
	private String reviewRoleUpdate;
	/**
	 * 工作流ID
	 */
	private String reviewProcessId;
	/**
	 * 是否接收系统短信通知  true：是 false：否(默认）
	 */
	private String receiveMessage;
	/**
	 * 租户id
	 */
	private String tenantId;

	/**
	 * 待审核的事项
	 */
	private String reviewRecords;

	/**
	 * 密码状态
	 */
	private String warningFlag;
}
